﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Szakdolgozat
{
    /// <summary>
    /// Interaction logic for LoginView.xaml
    /// </summary>
    public partial class LoginView : UserControl
    {

        MainWindow mainWindow;
        Database database = new Database();
        Controller controller = new Controller();


        public LoginView(MainWindow mainWindow)
        {
            this.mainWindow = mainWindow;
            InitializeComponent();

        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            loginbutton.IsEnabled = false;
            userBox.SelectAll();
            userBox.Focus();
            // autologin az első, amit megnéz, hogy egvan-e az adatbázisban
            database.DefaultUser();
        }

        private void loginbutton_Click(object sender, RoutedEventArgs e)
        {

            if (database.CheckUserPW(userBox.Text, passwordBox.Password))
            {
                Controller.operatorid = controller.GetOperatorId(userBox.Text);
                mainWindow.contentControl1.Content = new MainMenuView(mainWindow);
            }
            else
                this.wrongdata.Visibility = Visibility.Visible;
        }

        private void userOnKeyDownHandler(object sender, KeyEventArgs e)
        {
            loginbutton.IsEnabled = false;
            // e-ben átatódik a billentyűzettel kapcsolatos infó, Key enum-ból pedig megvizsgálom, hogy Enter jött-e
            if (e.Key == Key.Enter)
            {
                // a vezérlés passwordbox-nak adódik át
                passwordBox.SelectAll();
                passwordBox.Focus();
                
            }
        }

        // így a login button nem használható addig, amíg a password-öt be nem írták, kivéve akkor, 
        // ha a user "autologin", ekkor password nélkül is be lehet lépni
        private void passwordBox_PasswordChanged(object sender, RoutedEventArgs e)
        {
            //// ebben az esetben autologin, engedélyezi a button használatát
            //if (String.IsNullOrWhiteSpace(passwordBox.Password) && controller.AutologinCheck(userBox.Text))
            //    loginbutton.IsEnabled = true;
            //// ebben az esetben pedig már mindkettő be van írva
            //else if (!String.IsNullOrWhiteSpace(passwordBox.Password) && !controller.AutologinCheck(userBox.Text))
            //    loginbutton.IsEnabled = true;
            //else
            //    loginbutton.IsEnabled = false;
            if (!String.IsNullOrWhiteSpace(passwordBox.Password))
                loginbutton.IsEnabled = true;
            else
                loginbutton.IsEnabled = false;

        }

        private void passwordBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
                   loginbutton.IsEnabled = true;                                          
        }
    }
}
